package com.xjaq.dify.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

@Data
@ApiModel("聊天完成响应")
public class ChatCompletionResponse {
    
    @ApiModelProperty("事件类型，固定为 message")
    private String event;
    
    @ApiModelProperty("任务 ID，用于请求跟踪和下方的停止响应接口")
    private String taskId;
    
    @ApiModelProperty("唯一ID")
    private String id;
    
    @ApiModelProperty("消息唯一 ID")
    private String messageId;
    
    @ApiModelProperty("会话 ID")
    private String conversationId;
    
    @ApiModelProperty("App 模式，固定为 chat")
    private String mode;
    
    @ApiModelProperty("完整回复内容")
    private String answer;
    
    @ApiModelProperty("元数据")
    private Metadata metadata;
    
    @ApiModelProperty("消息创建时间戳")
    private Long createdAt;
    
    @Data
    @ApiModel("元数据")
    public static class Metadata {
        @ApiModelProperty("模型用量信息")
        private Usage usage;
        
        @ApiModelProperty("引用和归属分段列表")
        private List<RetrieverResource> retrieverResources;
    }
}